include_rules = [
  "+base/trace_event/common/trace_event_common.h",
  "+src",
  "-src/asmjs",
  "+src/asmjs/asm-js.h",
  "-src/baseline",
  "+src/baseline/baseline.h",
  "+src/baseline/baseline-batch-compiler.h",
  "+src/baseline/bytecode-offset-iterator.h",
  "-src/bigint",
  "+src/bigint/bigint.h",
  "-src/compiler",
  "+src/compiler/code-assembler.h",
  "+src/compiler/turbofan.h",
  "+src/compiler/wasm-compiler-definitions.h",
  "+src/compiler/wasm-compiler.h",
  "-src/heap",
  "+src/heap/basic-memory-chunk.h",
  "+src/heap/code-range.h",
  "+src/heap/combined-heap.h",
  "+src/heap/factory.h",
  "+src/heap/factory-inl.h",
  # TODO(v8:10496): Don't expose so much (through transitive includes) outside
  # of heap/.
  "+src/heap/gc-tracer.h",
  "+src/heap/gc-tracer-inl.h",
  "+src/heap/heap.h",
  "+src/heap/heap-verifier.h",
  "+src/heap/heap-inl.h",
  "+src/heap/heap-write-barrier-inl.h",
  "+src/heap/heap-write-barrier.h",
  "+src/heap/local-factory-inl.h",
  "+src/heap/local-factory.h",
  "+src/heap/local-heap.h",
  "+src/heap/local-heap-inl.h",
  "+src/heap/pretenuring-handler-inl.h",
  # TODO(v8:10496): Don't expose memory chunk outside of heap/.
  "+src/heap/memory-chunk.h",
  "+src/heap/memory-chunk-inl.h",
  "+src/heap/paged-spaces-inl.h",
  "+src/heap/parked-scope.h",
  "+src/heap/read-only-heap-inl.h",
  "+src/heap/read-only-heap.h",
  "+src/heap/reference-summarizer.h",
  "+src/heap/safepoint.h",
  "+src/heap/base/stack.h",
  "+src/heap/conservative-stack-visitor.h",
  "-src/inspector",
  "-src/interpreter",
  "+src/interpreter/bytecode-array-iterator.h",
  "+src/interpreter/bytecode-array-random-iterator.h",
  "+src/interpreter/bytecode-decoder.h",
  "+src/interpreter/bytecode-flags.h",
  "+src/interpreter/bytecode-register.h",
  "+src/interpreter/bytecodes.h",
  "+src/interpreter/interpreter.h",
  "+src/interpreter/interpreter-generator.h",
  "+src/interpreter/setup-interpreter.h",
  "-src/maglev",
  "+src/maglev/maglev.h",
  "+src/maglev/maglev-concurrent-dispatcher.h",
  "-src/regexp",
  "+src/regexp/regexp.h",
  "+src/regexp/regexp-flags.h",
  "+src/regexp/regexp-stack.h",
  "+src/regexp/regexp-utils.h",
  "-src/trap-handler",
  "+src/trap-handler/handler-inside-posix.h",
  "+src/trap-handler/handler-inside-win.h",
  "+src/trap-handler/trap-handler.h",
  "+src/trap-handler/trap-handler-simulator.h",
  "+testing/gtest/include/gtest/gtest_prod.h",
  "-src/libplatform",
  "-include/libplatform",
  "+builtins-generated",
  "+torque-generated",
  "+starboard",
  # Using cppgc inside v8 is not (yet) allowed.
  "-include/cppgc",
  "+include/cppgc/common.h",
  "+include/cppgc/platform.h",
  "+include/cppgc/source-location.h",
]

specific_include_rules = {
  "d8\.cc": [
    "+include/libplatform/libplatform.h",
    "+include/libplatform/v8-tracing.h",
    "+perfetto/tracing/track_event.h",
    "+perfetto/tracing/track_event_legacy.h"
  ],
  "d8-platforms\.cc": [
    "+include/libplatform/libplatform.h",
  ],
  "builtins-trace\.cc": [
    "+protos/perfetto",
  ],
  "etw-jit-win\.cc": [
    "+src/libplatform/tracing/recorder.h",
  ],
  "etw-jit-metadata-win\.h": [
    "+src/libplatform/etw/etw-provider-win.h",
  ],
  "script\.h": [
    "+src/heap/factory.h",
    "+src/heap/factory-base.h",
    "+src/heap/local-factory.h",
  ],
}
